Строковые функции: ------------------------------ 1. CONCAT(str1, str2, ...) Возвращает строку, являющуюся результатом конкатенации аргументов. Если хотя бы один из аргументов равен NULL, возвращается NULL. Может принимать более 2 аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму 2. CONCAT_WS(separator, str1, str2, ...) Функция CONCAT_WS() обозначает CONCAT With Separator (конкатенация с разделителем) и представляет собой специальную форму функции CONCAT(). Первый аргумент является разделителем для остальных аргументов. Разделитель, так же как и остальные аргументы, может быть строкой. Если разделитель равен NULL, то результат будет NULL. Данная функция будет пропускать все величины NULL и пустые строки, расположенные после аргумента-разделителя. Разделитель будет добавляться между строками, подлежащими конкатенации 3. LENGTH(str) - возвращает длину строки в байтах, CHAR_LENGTH(str) - возвращает кол-во символов, CHARACTER_LENGTH(str) - - возвращает кол-во символов 4. LOCATE(substr,str) Возвращает позицию первого вхождения подстроки substr в строку str. Если подстрока substr в строке str отсутствует, возвращается 0 5. LEFT(str,len) Возвращает крайние слева len символов из строки str. Данная функция поддерживает многобайтные величины 6. RIGHT(str,len) Возвращает крайние справа len символов из строки str. Данная функция поддерживает многобайтные величины 7. SUBSTRING(str,pos,len) Возвращает подстроку длиной len символов из строки str, начиная от позиции pos. Данная функция поддерживает многобайтные величины 8. SUBSTRING(str,pos) Возвращает подстроку из строки str, начиная с позиции pos. Данная функция поддерживает многобайтные величины 9. SUBSTRING_INDEX(str,delim,count) Возвращает подстроку из строки str перед появлениям count вхождений разделителя delim. Если count положителен, то возвращается все, что находится слева от последнего разделителя (считая слева). Если count отрицателен, то возвращается все, что находится справа от последнего разделителя (считая справа). Данная функция поддерживает многобайтные величины 10. LTRIM(str) Возвращает строку str с удаленными начальными пробелами. Данная функция поддерживает многобайтные величины 11. RTRIM(str) Возвращает строку str с удаленными конечными пробелами. Данная функция поддерживает многобайтные величины 12. TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) Возвращает строку str с удаленными всеми префиксами и/или суффиксами, указанными в remstr. Если не указан ни один из спецификаторов BOTH, LEADING или TRAILING, то подразумевается BOTH. Если аргумент remstr не задан, то удаляются пробелы: mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx' Данная функция поддерживает многобайтные величины 13. REPLACE(str,from_str,to_str) Возвращает строку str, в которой все вхождения строки from_str заменены на to_str. Данная функция поддерживает многобайтные величины 14. LCASE(str), LOWER(str) Возвращает строку str, в которой все символы переведены в нижний регистр. Данная функция поддерживает многобайтные величины 15. UCASE(str), UPPER(str) Возвращает строку str, в которой все символы переведены в верхний регистр. Данная функция поддерживает многобайтные величины =========================================== Функции сравнения строк =========================================== SELECT 'a' REGEXP 'a'; 1 =========================================== Математические функции =========================================== 1. ABS(X) Возвращает абсолютное значение величины X 2. SIGN(X) Возвращает знак аргумента в виде -1, 0 или 1, в зависимости от того, является ли X отрицательным, нулем или положительным 3. MOD(N,M) Значение по модулю. Возвращает остаток от деления N на M 4. FLOOR(X) Округляет дробь в меньшую сторону 5. CEILING(X), CEIL(X) Округляет дробь в большую сторону 6. ROUND(X) Округляет дробь по правилам математики. Применять с осторожностью - зависит от приложения 7. ROUND(X,D) Возвращает аргумент X, округленный до числа с D десятичными знаками. Если D равно 0, результат будет представлен без десятичного знака или дробной части 8. POW(X,Y), POWER(X,Y) Возвращает значение аргумента X, возведенное в степень Y 9. SQRT(X) Возвращает неотрицательный квадратный корень числа X 10. RAND() Возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0 11. TRUNCATE(X,D) Возвращает X, усеченный до D количества знаков после десятичной точки. Если D представлен нулем, результат будет без десятичной точки или дробной части. Если D отрицательно, то часть числа обнуляется. =========================================== Функции даты и времени =========================================== 1. NOW(), SYSDATE(), CURRENT_TIMESTAMP Возвращает текущую дату и время как величину в формате YYYY-MM-DD HH:MM:SS или YYYYMMDDHHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом. Заметьте, что NOW() вычисляется только единожды для каждого запроса, а именно - в начале его выполнения. Это позволяет быть уверенным в том, что множественные ссылки на NOW() в рамках одного запроса дадут одно и то же значение 2. CURDATE(), CURRENT_DATE Возвращает сегодняшнюю дату как величину в формате YYYY-MM-DD или YYYYMMDD, в зависимости от того, в каком контексте используется функция - в строковом или числовом 3. CURTIME(), CURRENT_TIME Возвращает текущее время как величину в формате HH:MM:SS или HHMMS, в зависимости от того, в каком контексте используется функция - в строковом или числовом 4. DAYOFWEEK(date) Возвращает индекс дня недели для аргумента date (1 = воскресенье, 2 = понедельник, ... 7 = суббота). Эти индексные величины соответствуют стандарту ODBC. 5. WEEKDAY(date) Возвращает индекс дня недели для аргумента date (0 =понедельник, 1 = вторник, ... 6 = воскресенье) 6. DAY(date), DAYOFMONTH(date) Возвращает порядковый номер дня месяца для аргумента date в диапазоне от 1 до 31 7. DAYOFYEAR(date) Возвращает порядковый номер дня года для аргумента date в диапазоне от 1 до 366 8. MONTH(date) Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12 9. DAYNAME(date) Возвращает название дня недели для аргумента date 10. MONTHNAME(date) || SET lc_time_names = 'ru_RU' Возвращает название месяца для аргумента date 11. QUARTER(date) Возвращает номер квартала года для аргумента date в диапазоне от 1 до 4 12. YEAR(date) Возвращает год для аргумента date в диапазоне от 1000 до 9999 или 0 для "zero" даты 13. HOUR(time) Возвращает час для аргумента time в диапазоне от 0 до 23 14. MINUTE(time) Возвращает количество минут для аргумента time в диапазоне от 0 до 59 15. SECOND(time) Возвращает количество секунд для аргумента time в диапазоне от 0 до 59 16. PERIOD_ADD(P,N) Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты 17. PERIOD_DIFF(P1,P2) Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты 18. DATE_ADD(date,INTERVAL expr type) син. ADDDATE(date,INTERVAL expr type); ADDDATE(expr,days) DATE_SUB(date,INTERVAL expr type) син. SUBDATE(date,INTERVAL expr type); SUBDATE(expr,days) Данные функции производят арифметические действия над датами. Обе являются нововведением версии MySQL 3.22. Функции ADDDATE() и SUBDATE() - синонимы для DATE_ADD() и DATE_SUB(). В версии MySQL 3.23 вместо функций DATE_ADD() и DATE_SUB() можно использовать операторы + и -, если выражение с правой стороны представляет собой столбец типа DATE или DATETIME. Аргумент date является величиной типа DATETIME или DATE, задающей начальную дату. Выражение expr задает величину интервала, который следует добавить к начальной дате или вычесть из начальной даты. Выражение expr представляет собой строку, которая может начинаться с - для отрицательных значений интервалов. Ключевое слово type показывает, каким образом необходимо интерпретировать данное выражение. Вспомогательная функция EXTRACT(type FROM date) возвращает интервал указанного типа (type) из значения даты. 19. EXTRACT(type FROM date) Типы интервалов для функции EXTRACT() используются те же, что и для функций DATE_ADD() или DATE_SUB(), но EXTRACT() производит скорее извлечение части из значения даты, чем выполнение арифметических действий 20. DATE_FORMAT(date,format) Форматирует величину date в соответствии со строкой format 21. TIME_FORMAT(time,format) Данная функция используется аналогично описанной выше функции DATE_FORMAT(), но строка format может содержать только те определители формата, которые относятся к часам, минутам и секундам. При указании других определителей будет выдана величина NULL или 0 22. SEC_TO_TIME(seconds) Возвращает аргумент seconds, преобразованный в часы, минуты и секунды, как величину в формате HH:MM:SS или HHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом 23. TIME_TO_SEC(time) Возвращает аргумент time, преобразованный в секунды 24. DATE(expr) Возвращает часть, отвечающую за дату 25. TIME(expr) Возвращает часть, отвечающую за время